Many applications have adopted a web browser-based interface employed by a user to interact with the application. These interfaces typically display the application data and provide buttons and links to instruct the application to perform operations. Often, it is also desirable for this web interface to dynamically update the application information that is being displayed, as soon as it changes in the application. This is sometimes called monitoring information, or event driven display. However, this is difficult to accomplish with the web interface, because it is primarily a “pull” model in which new pages are displayed only when the user requests them. There are several ways that web interface developers have attempted to overcome this restriction, but all of the approaches have drawbacks. Due to the inherent limitations of the HyperText Transfer Protocol (HTTP) model, it is not simple to overcome this problem.
One common solution to this problem is to use a META refresh tag to refresh the entire application page periodically. This approach, however, uses a large amount of network bandwidth and puts a sizable load on the server because the whole page must be generated and downloaded each time it is refreshed. Refreshing an entire page causes another problem if the page has any user input fields. If the page starts to reload when the user has typed in some input but has not yet submitted it, the input will be lost. This is because the input fields are reloaded in the browser and the fields have no knowledge of the data that was just typed.
Another common solution is to write a Java programming language applet that will display the application data in the page. This has two drawbacks. First, it usually takes a long time for the applet code to download and start up because all the Java base classes need to be downloaded as well. Second, the applet needs to open a network connection to the server in order to allow the server to “push” down data when events occur. This is undesirable because security authentication must be programmed into the newly opened connection and because the port number used by this connection may not be allowed through firewalls existing between the server and the browser.
Based on the foregoing, a need still exists for an enhanced technique to dynamically update application information that is being displayed by a browser.